package work.timejay.common;
import com.google.common.collect.Lists;

import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.Data;

import java.util.List;

/**
 * @className:ApiPageEntity.java
 * @author:王文杰
 * @version:1.0.0
 * @description:分页对象
 * @createTime 2023年11月28日 10:19:00
 */
@Data
public class ApiPageEntity<T> {

    /**
     * 总记录数
     */
    private long total;

    /**
     * 总页数
     */
    private long pages;

    /**
     * 列表数据
     */
    private List<T> rows;

    public static<T> ApiPageEntity<T> create(IPage<T> iPage){
        ApiPageEntity<T> bean = new ApiPageEntity<>();
        bean.setTotal(iPage.getTotal());
        bean.setPages(iPage.getPages());
        bean.setRows(iPage.getRecords());
        return bean;
    }

    public static<T> ApiPageEntity<T> createByEmpty(List<T> emptyList){
        ApiPageEntity<T> bean = new ApiPageEntity<>();
        bean.setTotal(0);
        bean.setPages(0);
        bean.setRows(emptyList);
        return bean;
    }

    public static<T> ApiPageEntity<T> create(IPage iPage,List<T> list){
        ApiPageEntity<T> bean = new ApiPageEntity<>();
        bean.setTotal(iPage.getTotal());
        bean.setPages(iPage.getPages());
        bean.setRows(list);
        return bean;
    }
}
